package com.pur.zsms.quotation.service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.pur.zsms.check.vo.CheckVo;
import com.pur.zsms.common.exception.GenericException;
import com.pur.zsms.common.support.PageController;
import com.pur.zsms.common.support.PaginationSupport;
import com.pur.zsms.pmsnmanage.menu.po.MenuPo;
import com.pur.zsms.pmsnmanage.role.vo.RoleVo;
import com.pur.zsms.pmsnmanage.user.po.UserPo;
import com.pur.zsms.pmsnmanage.user.vo.UserVo;
import com.pur.zsms.quotation.po.QuotationCompanyPeriodPo;
import com.pur.zsms.quotation.po.QuotationPo;
import com.pur.zsms.quotation.po.QuotationSubPo;
import com.pur.zsms.quotation.vo.QuotationCompanyPeriodSubVo;
import com.pur.zsms.quotation.vo.QuotationCompanyPeriodVo;
import com.pur.zsms.quotation.vo.QuotationVo;
import com.pur.zsms.shopmanage.po.ShopPo;
import com.pur.zsms.shopmanage.vo.ShopVo;
import com.pur.zsms.supplier.service.impl.ExcelInMaterValueCost;
import com.pur.zsms.systemsetting.datadictionary.po.Code;

public interface IQuotationService {
	String msg = "";

	String content = "";

	public String getContent();

	public void setContent(String content);

	public String getMsg();

	public void setMsg(String msg);

	public boolean checkSaveQuotation(String quotationName, long supId) throws Exception;

	public QuotationPo saveQuotation(String quotationName, long supId) throws Exception;

	public void saveQuotationSub(QuotationSubPo quotationSubPo) throws Exception;

	public boolean addQuotationMaterByShopIdMaterIdForSup(QuotationCompanyPeriodSubVo c) throws Exception;

	public void deleteQuotation(long quotationId) throws Exception;

	public PaginationSupport listQuotation(PageController pageController, QuotationVo quotationVo) throws GenericException;

	public String pullDownQuotation(String codeId, String codeName, long diy) throws GenericException;

	public PaginationSupport companyPeriodList(PageController pageController, QuotationCompanyPeriodVo tQuotationCompanyPeriodVo)
			throws GenericException;

	public PaginationSupport detailRaisePricePeriod(PageController pageController, QuotationCompanyPeriodVo tQuotationCompanyPeriodVo)
			throws GenericException;

	public boolean checkImportDetailCompanyPeriod(Map<Integer, String> map) throws Exception;

	public void importDetailCompanyPeriod(Map<Integer, String> map, QuotationCompanyPeriodPo tQuotationCompanyPeriodPo) throws Exception;

	public QuotationCompanyPeriodPo addQuotationCompanyPeriodPo(long supId, int companyId, String quotationName) throws Exception;

	public String getAllCompanyJson(String diy) throws GenericException;

	public String getAllCompanyJsonForSup(String diy, long supId) throws GenericException;

	public QuotationCompanyPeriodPo getQuotationCompanyPeriodPo(long quotationId) throws GenericException;

	public boolean adoptCompanyPeriod(int supId, long quotationId, int companyId) throws GenericException;

	public void deleteCompanyPeriod(long quotationId) throws GenericException;

	public List<Object[]> getCompanyPeriodForExcel(long quotationId) throws GenericException;

	public String getCompanyPeriodValue(int materId, int supId, long shopId) throws GenericException;
}
